# -*- mode: zsh; sh-indentation: 2; -*-

# 核心配置 ========================================
setopt PROMPT_SUBST

# 阴阳鱼图标配置
typeset -g YINYANG="☯"
typeset -g YINYANG_PROMPT="%F{black}☯%f"  # 输入提示符

# 颜色定义
typeset -g USER_COLOR="%F{cyan}"
typeset -g HOST_COLOR="%F{magenta}"
typeset -g PATH_COLOR="%F{blue}"
typeset -g GIT_COLOR="%F{green}"
typeset -g TIME_COLOR="%F{yellow}"
typeset -g DATE_COLOR="%F{214}"  # 橙色日期
typeset -g LOCAL_COLOR="%F{green}"
typeset -g SYSTEM_COLOR="%F{red}"
typeset -g RESET="%f"

# 功能函数 ========================================

# 用户@主机信息
function user_host() {
  echo "${USER_COLOR}%n${RESET}@${HOST_COLOR}%m${RESET}"
}

# Git状态检测
function git_prompt_info() {
  local ref
  ref=$(git symbolic-ref --short HEAD 2>/dev/null) || \
  ref=$(git rev-parse --short HEAD 2>/dev/null) || return
  
  if ! git diff --quiet 2>/dev/null; then
    ref+=" *"
  fi
  
  echo "${GIT_COLOR}[${ref}]${RESET}"
}

# 环境标识
function env_indicator() {
  [[ -n "$SSH_CONNECTION" ]] && \
    echo "${SYSTEM_COLOR}☯ system${RESET}" || \
    echo "${LOCAL_COLOR}☯ local${RESET}"
}

# 智能路径显示
function dir_prompt() {
  local current_dir="${PWD/#$HOME/~}"
  local dir_parts=(${(s:/:)current_dir})
  
  if [[ ${#dir_parts} -gt 3 ]]; then
    current_dir="../${dir_parts[-2]}/${dir_parts[-1]}"
  fi
  
  echo "${PATH_COLOR}${current_dir}${RESET}"
}

# 完整时间显示（新增函数）
function full_time() {
  echo "${DATE_COLOR}%D{%Y-%m-%d}${RESET} ${TIME_COLOR}%D{%H:%M:%S}${RESET}"
}

# 提示符构建 ======================================

PROMPT=''
# 第一行：用户@主机 > 路径 > Git状态
PROMPT+='$(user_host) '
PROMPT+='$(dir_prompt) '
PROMPT+='$(git_prompt_info)'
PROMPT+=$'\n'
# 第二行：环境标识 > 完整时间 > 输入提示
PROMPT+='$(env_indicator) '
PROMPT+='$(full_time) '  # 使用新时间函数
PROMPT+='${YINYANG_PROMPT} '

RPROMPT=''  # 保持右侧干净
